% Test harris corner detector
I = checkerboard ;
sd = 0.5 ;
si = 1.0 ;
[H,detail] = harris( imsmooth( I, sd ), si ) ;
H = H + eps*randn(size(H)) ; % No plateau
sel = localmax(H) ;
[i,j] = ind2sub(size(I),sel) ;

figure(1) ; clf ;
subplot(2,3,1) ; imagesc(I) ; title('Source image') ;
subplot(2,3,2) ; imagesc(H) ; title('Harris function ') ;
subplot(2,3,3) ; imagesc(I) ; hold on ; plot(j,i,'r.') ; title('Corners') ;
subplot(2,3,4) ; imagesc(H) ; hold on ; plot(j,i,'r.') ; title('Corners') ;
subplot(2,3,5) ; imagesc(detail.sigmap) ; hold on ; title('sigmap') ;
subplot(2,3,6) ; imagesc(detail.rho)    ; hold on ; title('rho') ;
colormap gray ;

% Now double
I = imup(I) ;
sd = 1.0 ;
si = 2.0 ;
[H,detail] = harris( imsmooth( I, sd ), si ) ;
H = H + eps*randn(size(H)) ; % No plateau
sel = localmax(H) ;
[i,j] = ind2sub(size(I),sel) ;

figure(2) ; clf ;
subplot(2,3,1) ; imagesc(I) ; title('Source image') ;
subplot(2,3,2) ; imagesc(H) ; title('Harris function ') ;
subplot(2,3,3) ; imagesc(I) ; hold on ; plot(j,i,'r.') ; title('Corners') ;
subplot(2,3,4) ; imagesc(H) ; hold on ; plot(j,i,'r.') ; title('Corners') ;
subplot(2,3,5) ; imagesc(detail.sigmap) ; hold on ; title('sigmap') ;
subplot(2,3,6) ; imagesc(detail.rho)    ; hold on ; title('rho') ;

colormap gray ;

% Now use original Harris
[H,detail] = harris( imsmooth( I, sd ), si, []) ;
H = H + eps*randn(size(H)) ; % No plateau
sel = localmax(H) ;
[i,j] = ind2sub(size(I),sel) ;

figure(3) ; clf ;
subplot(2,3,1) ; imagesc(I) ; title('Source image') ;
subplot(2,3,2) ; imagesc(H) ; title('Harris function ') ;
subplot(2,3,3) ; imagesc(I) ; hold on ; plot(j,i,'r.') ; title('Corners') ;
subplot(2,3,4) ; imagesc(H) ; hold on ; plot(j,i,'r.') ; title('Corners') ;
subplot(2,3,5) ; imagesc(detail.sigmap) ; hold on ; title('sigmap') ;
subplot(2,3,6) ; imagesc(detail.rho)    ; hold on ; title('rho') ;
colormap gray ;
